/*
        Programação Concorrente
        Trabalho 1
        Turma A

        Adilson Rapozo
        Luiz Bertoni
        Rodrigo Costa

        This program counts how many digits are equal between files.
        stdin is compared to CORRECT_PI_FILE.
*/


#include "util.h"

/*Retorna quantidade de digitos calculados corretamente de pi*/
/*Numeros estao em formato cientifico*/
/*Assume que numeros estao na base e1 (e.g., 0.314e1)*/
long compare(FILE *f1, FILE *f2){

	long i = 0;
    char ca,co;

    rewind(f1);
    rewind(f2);

    ca = getc(f1);
    co = getc(f2);
	while ( ca == co ){
        if ( ca == EOF || co == EOF )
			break;
        if ( ca == 'e' || co == 'e' )
			break;
        i++;
		ca = getc(f1);
		co = getc(f2);
	}

    if (i < 2) i=2;
    return i-2; /* 0. desconsiderados */
}

/*Salva em disco, na pasta outputs o arquivo com o valor de PI*/
/*No formatoSEEK_SET [nome_alg]_[numero_iteracao].txt*/
void savePI(FILE **file, const char *filename, mpf_t pi, unsigned long i){
    char filename_i[500];

    sprintf (filename_i, "outputs/%s_%lu.txt",filename,i);
    (*file) = fopen(filename_i,"w+");
    mpf_out_str((*file),10,0,pi);
}
